package com.dm.lerannightmode;

import android.app.Application;
import android.content.res.Configuration;
import android.support.v7.app.AppCompatDelegate;

/**
 * Created by Damon on 2017/5/26.
 */

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //FIXME 4
        boolean isNight = SpUtil.getNightModel(this);
        if (isNight) {
            //使用夜间模式
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
        } else {
            //不使用夜间模式
            AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
        }
    }
}
/**
 * MODE_NIGHT_NO. Always use the day (light) theme(一直应用日间(light)主题).
 * MODE_NIGHT_YES. Always use the night (dark) theme(一直使用夜间(dark)主题).
 * MODE_NIGHT_AUTO. Changes between day/night based on the time of day(根据当前时间在day/night主题间切换).
 * MODE_NIGHT_FOLLOW_SYSTEM(默认选项).
 * This setting follows the system’s setting, which is essentially MODE_NIGHT_NO(跟随系统，通常为MODE_NIGHT_NO).
 * MODE_NIGHT_AUTO：
 * 因为使用MODE_NIGHT_AUTO需要请求坐标权限，获取系统的位置。
 * 如果程序已经授予了坐标权限(location permission)(如果你的target SDK为23或者更高，需要考虑运行时权限)，
 * AppCompat会试着去获取上次保存的坐标，根据坐标来计算日出与日落的时间。
 * 如果程序没有位置权限或者LocationManager没有存储上次坐标的信息呢？系统或默认设置为早上6点钟为日出，下午10点为日落。
 * 用户调整系统时间，当前的主题也会随之改变。如果我们不希望用户在设定主题后，主题还会随着时间改变,MODE_NIGHT_AUTO就不适用了。
 */